/**
 * jims
 */
package com.jims.master.modules.blood.entity;


import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

/**
 * 用血申请Entity
 * @author CTQ
 * @version 2017-04-10
 */
public class BloodApply extends DataEntity<BloodApply> {

	private static final long serialVersionUID = 1L;
	private String applyNum;		// 申请单号
	private String visitId;		// 住院号
	private String clinicId;		// 门诊id
	private String patientId;		// 病人id
	private String inoroutFlag;		// 住院1/门诊0
    private String patientColony;      //受血者属地(本市/外阜)
	private String bloodInuse;		// 血源：血库，自体，互助
	private String bloodDiagnose;		// 诊断及输血适应症(由申请用血医生填写,为描述性字段)
	private String bloodTaboo;		// 输血反应及输血禁忌症(描述受血者的过敏史及禁尽症)
    private String useBloodHistory;  //继往输血史
    private String useBloodAim;    //输血目的：(纠正贫血/提高红细胞血氧化能力)
    private String patBloodGroup;		// 受血者血型
	private String preBloodType;		// 预输血型
    private String rh;		         // Rh血型
	private Double hematin;		// 血红蛋白
    private Double leucocyte;		// 白血球
	private Double platelet;		// 血小板
    private Double alanineAminoTransFeRaSe;  //谷丙转氨酶
    private Double heMaToCRit;        //红细胞压积
    private String antibodyToHepatitisC;   //丙型肝炎抗体
    private String hbsAntigen;     //乙型肝炎表面抗原
    private String hiv;       //人类免疫缺陷病毒
    private String syphilis;    //梅毒
	private Date gatherDate;		// 血库收到时间(输血科收到输血申请单的时间)
	private String chargeFlag;		// 0.未收费1.收费
	private String applyStatus;		// 用血申请状态(0,未配血;1,已配血;2,已输血/发血)
	private String appDept;		// 开单科室
	private String appDoctor;		// 开单医生
	private String takeBloodUser;		// 取血者

	public BloodApply() {
		super();
	}

	public BloodApply(String id){
		super(id);
	}

	@Length(min=1, max=100, message="申请单号长度必须介于 1 和 100 之间")
	public String getApplyNum() {
		return applyNum;
	}

	public void setApplyNum(String applyNum) {
		this.applyNum = applyNum;
	}

	@Length(min=0, max=64, message="住院号长度必须介于 0 和 64 之间")
	public String getVisitId() {
		return visitId;
	}

	public void setVisitId(String visitId) {
		this.visitId = visitId;
	}

	@Length(min=0, max=64, message="门诊id长度必须介于 0 和 64 之间")
	public String getClinicId() {
		return clinicId;
	}

	public void setClinicId(String clinicId) {
		this.clinicId = clinicId;
	}

	@Length(min=0, max=64, message="病人id长度必须介于 0 和 64 之间")
	public String getPatientId() {
		return patientId;
	}

	public void setPatientId(String patientId) {
		this.patientId = patientId;
	}

	@Length(min=1, max=1, message="住院/门诊长度必须介于 1 和 1 之间")
	public String getInoroutFlag() {
		return inoroutFlag;
	}

	public void setInoroutFlag(String inoroutFlag) {
		this.inoroutFlag = inoroutFlag;
	}

	@Length(min=0, max=1, message="血源：血库，自体，互助长度必须介于 0 和 1 之间")
	public String getBloodInuse() {
		return bloodInuse;
	}

	public void setBloodInuse(String bloodInuse) {
		this.bloodInuse = bloodInuse;
	}

	@Length(min=0, max=80, message="诊断及输血适应症(由申请用血医生填写,为描述性字段)长度必须介于 0 和 80 之间")
	public String getBloodDiagnose() {
		return bloodDiagnose;
	}

	public void setBloodDiagnose(String bloodDiagnose) {
		this.bloodDiagnose = bloodDiagnose;
	}

	@Length(min=0, max=40, message="输血反应及输血禁忌症(描述受血者的过敏史及禁尽症)长度必须介于 0 和 40 之间")
	public String getBloodTaboo() {
		return bloodTaboo;
	}

	public void setBloodTaboo(String bloodTaboo) {
		this.bloodTaboo = bloodTaboo;
	}

	public Double getHematin() {
		return hematin;
	}

	public void setHematin(Double hematin) {
		this.hematin = hematin;
	}

	public Double getPlatelet() {
		return platelet;
	}

	public void setPlatelet(Double platelet) {
		this.platelet = platelet;
	}

	public Double getLeucocyte() {
		return leucocyte;
	}

	public void setLeucocyte(Double leucocyte) {
		this.leucocyte = leucocyte;
	}

	@Length(min=0, max=1, message="受血者血型长度必须介于 0 和 1 之间")
	public String getPatBloodGroup() {
		return patBloodGroup;
	}

	public void setPatBloodGroup(String patBloodGroup) {
		this.patBloodGroup = patBloodGroup;
	}

	@Length(min=0, max=1, message="预输血型长度必须介于 0 和 1 之间")
	public String getPreBloodType() {
		return preBloodType;
	}

	public void setPreBloodType(String preBloodType) {
		this.preBloodType = preBloodType;
	}

	@Length(min=0, max=1, message="Rh血型长度必须介于 0 和 1 之间")
	public String getRh() {
		return rh;
	}

	public void setRh(String rh) {
		this.rh = rh;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getGatherDate() {
		return gatherDate;
	}

	public void setGatherDate(Date gatherDate) {
		this.gatherDate = gatherDate;
	}

	@Length(min=0, max=1, message="收费长度必须介于 0 和 1 之间")
	public String getChargeFlag() {
		return chargeFlag;
	}

	public void setChargeFlag(String chargeFlag) {
		this.chargeFlag = chargeFlag;
	}

	@Length(min=0, max=1, message="用血申请状态长度必须介于 0 和 1 之间")
	public String getApplyStatus() {
		return applyStatus;
	}

	public void setApplyStatus(String applyStatus) {
		this.applyStatus = applyStatus;
	}

	@Length(min=0, max=64, message="开单科室长度必须介于 0 和 64 之间")
	public String getAppDept() {
		return appDept;
	}

	public void setAppDept(String appDept) {
		this.appDept = appDept;
	}

	@Length(min=0, max=64, message="开单医生长度必须介于 0 和 64 之间")
	public String getAppDoctor() {
		return appDoctor;
	}

	public void setAppDoctor(String appDoctor) {
		this.appDoctor = appDoctor;
	}

	@Length(min=0, max=64, message="取血者长度必须介于 0 和 64 之间")
	public String getTakeBloodUser() {
		return takeBloodUser;
	}

	public void setTakeBloodUser(String takeBloodUser) {
		this.takeBloodUser = takeBloodUser;
	}

    public String getUseBloodHistory() {
        return useBloodHistory;
    }

    public void setUseBloodHistory(String useBloodHistory) {
        this.useBloodHistory = useBloodHistory;
    }

    public String getUseBloodAim() {
        return useBloodAim;
    }

    public void setUseBloodAim(String useBloodAim) {
        this.useBloodAim = useBloodAim;
    }

    public Double getAlanineAminoTransFeRaSe() {
        return alanineAminoTransFeRaSe;
    }

    public void setAlanineAminoTransFeRaSe(Double alanineAminoTransFeRaSe) {
        this.alanineAminoTransFeRaSe = alanineAminoTransFeRaSe;
    }

    public Double getHeMaToCRit() {
        return heMaToCRit;
    }

    public void setHeMaToCRit(Double heMaToCRit) {
        this.heMaToCRit = heMaToCRit;
    }

    public String getAntibodyToHepatitisC() {
        return antibodyToHepatitisC;
    }

    public void setAntibodyToHepatitisC(String antibodyToHepatitisC) {
        this.antibodyToHepatitisC = antibodyToHepatitisC;
    }

    public String getHbsAntigen() {
        return hbsAntigen;
    }

    public void setHbsAntigen(String hbsAntigen) {
        this.hbsAntigen = hbsAntigen;
    }

    public String getHiv() {
        return hiv;
    }

    public void setHiv(String hiv) {
        this.hiv = hiv;
    }

    public String getSyphilis() {
        return syphilis;
    }

    public void setSyphilis(String syphilis) {
        this.syphilis = syphilis;
    }

    public String getPatientColony() {
        return patientColony;
    }

    public void setPatientColony(String patientColony) {
        this.patientColony = patientColony;
    }
}